<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Snap.svg-动画实现</title>
    <style>
      body,
      ul {
        margin: 0;
        padding: 0;
      }

      body {
        background-image: url(../images/grid.png);
      }
      svg {
        background-color: rgba(255, 0, 0, 0.1);
      }
    </style>
  </head>
  <body>
    <svg
      id="Snap-svg"
      width="300"
      height="300"
      xmlns="http://www.w3.org/2000/svg"
    >
      <rect id="rectangle1" x="0" y="0" width="100" height="50"></rect>
    </svg>

    <script src="./libs/snap.svg-min.js"></script>
    <script>
      window.onload = function () {
        const svg = Snap("#Snap-svg");
        const paper = svg.paper;

        const rectangle = paper.rect(0, 0, 100, 50); // 创建一个矩形
        rectangle.attr({
          fill: "red",
        }); // 设置矩形的填充颜色为红色

        const rectangle1 = paper.select("#rectangle1"); // 选择id为rectangle1的矩形

        // 3.动画的实现( requestAnimatationFrame  1s 61次)
        // Snap.animate(
        //   0, // from
        //   200, // to
        //   function(val) {
        //     console.log('val', val)
        //     // 这里会回调 61 次, 会将0-200拆分成61份
        //     rectangle1.attr({
        //       x: val
        //     })
        //   },
        //   1000, // 毫秒 -> 1s
        //   mina.linear,
        //   function() {
        //     console.log('动画结束了')
        //   }
        // )

        Snap.animate(
          [0, 0], // from x, y
          [200, 200], // to x, y
          function (val) {
            // 这里会回调 61 次, 会将0-200拆分成61份
            rectangle1.attr({
              x: val[0],
              y: val[1],
            });
          },
          1000, // 毫秒 -> 1s
          mina.linear,
          function () {
            console.log("动画结束了");
          }
        );
      };
    </script>
  </body>
</html>
